using System;
using System.Collections.Generic;
using System.Text;

namespace Colman.Rpg.Messaging
{
    /// <summary>
    /// Represents a response from the server to any of the stages of player vs. player fight requests.
    /// </summary>
    [Serializable]
    public class FightPlayerResponse : ResponseMessage
    {
        /// <summary>
        /// Creates a new instance of <see cref="FightPlayerResponse" />.
        /// </summary>
        /// <param name="responseOperation">Represents the stage of the response.</param>
        /// <param name="opponent">The opponent to fight against.</param>
        /// <param name="destination">The destination of the message.</param>
        public FightPlayerResponse(PvpFightRequestStage responseOperation, Player opponent, params Player[] destination)
            : base(destination)
        {
            this.responseOperation = responseOperation;
            this.opponent = opponent;
        }

        #region Player Opponent { get; } (opponent)
        private Player opponent;

        /// <summary>
        /// Gets the opponent in the match.
        /// </summary>
        public Player Opponent
        {
            [System.Diagnostics.DebuggerStepThrough]
            get
            {
                return this.opponent;
            }
        }
        #endregion

        #region PvpFightRequestStage ResponseOperation { get; } (responseOperation)
        private PvpFightRequestStage responseOperation;

        /// <summary>
        /// Gets the stage of the response.
        /// </summary>
        public PvpFightRequestStage ResponseOperation
        {
            [System.Diagnostics.DebuggerStepThrough]
            get
            {
                return this.responseOperation;
            }
        }
        #endregion
    }
}
